package com.emeraldparser.util;

import java.util.Collection;

public interface Automaton<V, E> extends Graph<V, E> {

	public boolean addGraph(Graph<? extends V, ? extends E> graph);

	public boolean addAll(Automaton<? extends V, ? extends E> automaton);

	public boolean addStartVertex(V startVertex);

	public Collection<V> getStartVertices();

	public boolean addAcceptVertex(V acceptVertex);

	public Collection<V> getAcceptVertices();

	public boolean addRejectVertex(V rejectVertex);

	public Collection<V> getRejectVertices();

	public Collection<Path<V, E>> getPaths();

}
